package com.huaboot.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.huaboot.framework.security.user.LoginUser;
import com.huaboot.system.entity.SysMenuEntity;
import com.huaboot.system.vo.SysMenuVO;

import java.util.List;
import java.util.Set;

/**
 * @Author ff
 * @Date 2023/9/9 下午2:59
 * @Version 1.0
 */
public interface SysMenuService extends IService<SysMenuEntity> {
    void save(SysMenuVO vo);

	void update(SysMenuVO vo);

	void delete(Long id);

	/**
	 * 菜单列表
	 *
	 * @param type 菜单类型
	 */
	List<SysMenuVO> getMenuList(Integer type);

	/**
	 * 用户菜单列表
	 *
	 * @param user  用户
	 * @param type 菜单类型
	 */
	List<SysMenuVO> getUserMenuList(LoginUser user, Integer type);

	/**
	 * 获取子菜单的数量
	 * @param pid  父菜单ID
	 */
	Long getSubMenuCount(Long pid);

	/**
	 * 获取用户权限列表
	 */
	Set<String> getUserAuthority(LoginUser user);
}
